package com.whksoft.mymapplugin;

import com.whksoft.mymapplugin.Listener.*;
import com.whksoft.mymapplugin.command.mapCommand;
import com.whksoft.mymapplugin.utils.itemUtils;
import com.whksoft.mymapplugin.utils.versionUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public final class MyMapPlugin extends JavaPlugin {

    private static MyMapPlugin instance;

    public static Plugin getInstance() {
        return instance;
    }

    @Override
    public void onEnable() {
        // Plugin startup logic
        instance = this;
        getLogger().info(Bukkit.getBukkitVersion());
        getLogger().info(Bukkit.getVersion());
        getLogger().info(Bukkit.getServer().getClass().getPackage().getName());
        getLogger().info(String.valueOf(versionUtils.getMiddleVersion()));
        Objects.requireNonNull(this.getCommand("map")).setExecutor(new mapCommand(this));
        registerEvent();
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
        for(Player p : Bukkit.getOnlinePlayers()){
            itemUtils.clearMaps(p);
        }
    }

    public void registerEvent(){
        //监听事件
        Bukkit.getPluginManager().registerEvents(new clickFrame(this),this);
        //检测副手 (1.9+)
        if(versionUtils.getMiddleVersion() >= 9) Bukkit.getPluginManager().registerEvents(new offHand(this),this);
        Bukkit.getPluginManager().registerEvents(new openInv(this),this);
        Bukkit.getPluginManager().registerEvents(new playerDead(this),this);
        Bukkit.getPluginManager().registerEvents(new playerLeave(this),this);
        Bukkit.getPluginManager().registerEvents(new rightClick(this),this);
        Bukkit.getPluginManager().registerEvents(new throwItems(this),this);
    }
}
